//package com.waitingresult;
//
//import java.util.HashMap;
//
///**
// * @Author: WangShuai
// * @CreateTime: 2024-06-22  10:09
// * @Description:
// * @Version: 1.0
// */
//public class LinkedReverse {
//    public static void main(String[] args) {
//        ListNode head1 = new ListNode(1, new ListNode(2, new ListNode(3, new ListNode(4, new ListNode(5, null)))));
//        ListNode head2 = new ListNode(1, new ListNode(2, new ListNode(3, new ListNode(4, new ListNode(5, null)))));
////        System.err.println(reverseNode(head));
//        System.out.println(addTwoNumbers(head1, head2));
//    }
//
//    public static ListNode reverseNode(ListNode node) {
//        ListNode preNode = null;
//        while (node != null) {
//            ListNode listNode = node.next;
//            node.next = preNode;
//            preNode = node;
//            node = listNode;
//        }
//        return preNode;
//    }
//
//    public static ListNode addTwoNumbers(ListNode node1, ListNode node2) {
//        ListNode result = new ListNode(0, null);
//        ListNode cur = result;
//        int carryFlag = 0;
//        while (node1 != null || node2 != null) {
//            // 两数之和, + 进位
//            carryFlag = carryFlag / 10; // 计算进位
//            int tempSum = carryFlag + (node1 != null ? node1.val : 0) + (node2 != null ? node2.val : 0);
//            tempSum = tempSum % 10; // 计算余数
//            node1 = node1 != null ? node1.next : null;
//            node2 = node2 != null ? node2.next : null;
//            if (cur.next == null) {
//                cur.next = new ListNode(tempSum, null);
//            }
//        }
//        HashMap<Integer, Integer> map = new HashMap<>();
//        while (node1 != null) {
//            if (map.containsKey(node1.val)) {
//                return true;
//            }
//            map.put(node1.val, 1);
//        }
//
//        return result;
//    }
//}
//
//class Solution {
//    public boolean hasCycle(ListNode head) {
//        if (head.next == null) {
//            return false;
//        }
//
//        HashMap<Integer, Integer> map = new HashMap<>();
//        while (head != null) {
//            if (map.containsKey(head.val)) {
//                return true;
//            }
//            map.put(head.val, 1);
//        }
//    }
//
//    class ListNode {
//        int val;
//        ListNode next;
//
//        ListNode(int val, ListNode next) {
//            this.val = val;
//            this.next = next;
//        }
//
//        @Override
//        public String toString() {
//            return "ListNode{" +
//                    "val=" + val +
//                    ", next=" + next +
//                    '}';
//        }
//    }